This invention relates generally to congestion control in packet-based communication networks, such as local or wide area networks wherein information is conveyed from node to node by means of data packets each of which has a conventional format including typically a preamble, address data specifying a source and a destination, followed by user data. The invention is particularly though not exclusively intended for use on Ethernet networks.
The invention is particularly concerned with the control of congestion at a network switch by means of intelligent flow management while attempting to minimize the effect of that management on the throughput of packets.
The invention is intended to be generally applicable to network switches which have capacity for the temporary storage of data packets received at a port and is not intended to be limited to any particular switching, routine or bridging function that is to be performed by the device, herein generically called xe2x80x98switchxe2x80x99. A practical example of a switch to which the invention may be applied is the LS1000 switch made by 3Com Corporation.
Switches of the above-mentioned kind and many others having ports for the reception and transmission of data packets have a respective dedicated memory space for the buffering of packets received by a respective port, packets being held in the buffer storage until, after appropriate look-ups, priority resolution, contention resolution and so on, they may be forwarded to their respective destinations, usually after further temporary buffer storage.
Typically, the buffering for each port of a switch having respective buffering for each port is capable of handling bursts of packets up to some fairly small number, such as sixteen, of packets. If the burst size is greater than the minimum, the incoming traffic rate will exceed the outgoing rate or the buffer capacity and packets should be discarded.
It is known, in switches such as the LS1000 switches, to employ an adaptive technique, herein called intelligent flow management. Such a technique compensates for minimum memory per port and attempts to avoid loss of packets when congestion occurs, when there is not enough memory to store incoming packets. The switch employs xe2x80x98back-pressurexe2x80x99, usually by means of control frames sent back to the transmitting node, to force the continued buffering of packets at the remote source, that is to say the transmitting node providing packets to the respective port of the switch, until such time as the congestion at the switch is cleared.
Before the introduction of packet-burst technology when communication systems are sometimes unreliable, there was a one for one relationship between packets sent by a transmitting node and the packets acknowledged by the receiving node. Thus an acknowledged packet was sent by the receiver for each packet it received. Since communications have become more reliable, protocol efficiency has been increased by reducing the number of acknowledgements sent by a receiver and a one for many relationship exists. Thus a burst or window of sequence packets are sent by the transmitting node and one acknowledgement is sent back by the receiving node which indicates if all the packets in the burst were received or the sequence numbers of packets in the burst that were missing. The transmitting node then resends the missing packets or transmits the next burst.
Depending on network traffic and congestion there is normally an optimal size for a packet burst. A typical protocol (such as IPX) automatically optimizes the packet burst before and during packet transfer. It uses two variables to optimize burst mode. The primary variable is an inter-packet gap (IPG) which is varied until there is no packet loss. The secondary variable is the size of the packet window which is varied from a default or user configurable value to a value where there is no packet loss.
The maximum IPG is initially calculated by the user and is normally called a xe2x80x98half of the quickest round trip time to the destinationxe2x80x99. After a predetermined number of successes (for example no packets dropped in six bursts) or failures (for example two packets dropped in six bursts), an algorithm is used to increase or decrease the inter-packet gap. If the inter-packet gap adjustments results in its reaching its maximum value and there are still too many failures then the window size may be decreased exponentially and the processes repeated until there is no packet loss.
However, the exertion of back-pressure will not cause a transmitting node to adjust the bursts and the use of intelligent flow control is not consonant with the adjustment of burst packet sizes. Nevertheless the invention is not intended to be limited to circumstances in which a transmitting node transmits packets in bursts.
The present invention relates to the control of back-pressure by monitoring a measure of back-pressure to determine the rate thereof and to adjust the discarding of packets depending on the rate of increase or decrease of the rate.
Various features of the invention will be made apparent in the following, which is both a schematic and particular description of an example of the invention.